//config/common.js这个文件只用于配置webpack本地开发的选项
//用于npm run serve
const ESLintPlugin=require('eslint-webpack-plugin')
const {
    resolve
} = require('./utils')
module.exports = {
    //当代码报错时，显示源码位置得行号
    devtool:'inline-source-map',
    mode:'development',//表示webpack正在进行本地开发
    //本地服务
    //要安装webpack-dev-server这个包(全局和局部都要)
    devServer: {
        port: 8090,
        //用于指定本地服务器的静态资源目录
        contentBase: resolve('public'),
        //自动打开游览器运行publi里面的index.html
        open: true,
        //热更新:HMR=Hot Module Replacement
        //热更新的过程原理：实际上在npm start启动本地http服务时同时启动了websocket长连接服务.每当入口文件及其依赖发生变化时,websocket会把重新编译的结果推送到游览器，游览器收到更新的内容后进行页面局部更新
        //总结：执行npm start启动了两个服务,一个是基于node.js的http服务,另一个是基于webpack-hot-middleware实现的WebSocket长连接服务.
        //热更新只对入口文件及其依赖起作用.对public中文件不起作用
        hot: true,
        //当应用程序报错时显示一个遮盖层
        //当应用程序出现警告时不显示覆盖层
        overlay:{
            errors:true,
            warnings:false
        },
        proxy:{
            '/api':{
                target: 'https://cnodejs.org/',
                changeOrigin:true
            }
        }
    },
    plugins:[
        //只在开发环境使用，注意只检查js
        new ESLintPlugin({
            exclude:'node_modules'
        })
    ]

}